﻿using System;
using System.Collections.Generic;

namespace NPack.Interfaces
{
    public interface IVectorFactory<TVector, TComponent>
        where TComponent : IEquatable<TComponent>, IComparable<TComponent>, 
                           IComputable<TComponent>, IConvertible, IFormattable
        where TVector : IVector<TComponent>, IEquatable<TVector>, 
                        IComparable<TVector>, IComputable<Double, TVector>
    {
        TVector CreateVector(Int32 componentCount);
        TVector CreateVector(IEnumerable<TComponent> values);
    }
}
